<?php


/**
 * 后台平台控制器
 */
class PlatformController extends BaseController {

	public function __construct() {
		// 保证父类构造方法也执行
		parent::__construct();
		// 校验登录
		$this->_checkLogin();
	}

	/**
	 * 登录校验
	 * 下划线前缀，表示该成员为保护（私有）成员，命名规范
	 */
	protected function _checkLogin() {
		// 校验,session
		session_start();

		// 判断当前请求的控制器动作是否不需要校验
		// 通过在入口文件index.php定义的当前控制器和当前动作的常量
		// 来判断是否需要登录i校验，
		// 为了兼容大写问题，比较时转换为小写再比较
		$curr_controller = strtolower(CONTROLLER);
		$curr_action = strtolower(ACTION);
		if('admin' == $curr_controller && ($curr_action =='login' || $curr_action == 'check' || $curr_action=='captcha')) {
			// 不需要校验
			return ;// 直接返回，函数内后续代码不要执行
		}
		// 校验是否登录
		if(! isset($_SESSION['admin'])) {
			// 不具有凭证
			// 再检验是否具有合法的COOkie中的登录状态存储
			$m_admin = ModelFactory::GetModel('UserModel');
			// 存在且合法
			if(isset($_COOKIE['id']) && isset($_COOKIE['password']) && $admin_info = $m_admin->checkCookie($_COOKIE['id'], $_COOKIE['password'])) {
				// 将登录凭证记录到session中
				$_SESSION['admin'] = $admin_info;
			} else {
				// 没有登录凭证，和没有记录登录状态
				$this->GotoUrl('index.php?p=admin&c=Admin&a=Login', '', 0);
			}
		}
	}
}